JSR-303/JSR-349 Bean Validation
Spring框架4.0支持Bean验证1.0(JSR-303)和Bean验证1.1(JSR-349),同时也支持Spring的Validator接口。
一个应用程序可以选择在全局配置一次启用Bean验证,用于所有验证需求,就像8.8节,“Spring Validation”。
应用程序也可以为每个DataBinder实例注册格外的SpringValidator实例,如“8.8.3节,配置DataBinder”中所描述的。这对插入验证逻辑而不使用注释时是很有用的。
将验证作为业务逻辑是有利有弊的,Spring提供了(将验证放入业务逻辑和不放入的)两种的验证(和数据绑定)的方式。特殊的验证不应该被绑定到web层,它应该易于本地化和可插拔。考虑到上述情况,Spring提供了Validator接口,可以在每个应用程序的底层和顶层使用。
数据绑定允许用户输入动态的绑定到应用程序数据模型(或者用来处理用于的任意输入对象)是有用的。Spring提供了DataBinder来实现这一点。ValidatorDataBinder组成了validation的包,主要但不限制于MVC框架。
BeanWraper是Spring中的一个基础概念,在很多地方都有使用到。然而,您可能不需要直接使用BeanWrapper。因为本文是参文档,所有有些说明是按顺序的。当你想要绑定数据到对象上时,你很可能会用到它,我们将会在之后解释BeanWrapper
Spring的DataBinder和低层级BeanWrapper都使用PropertyEditrors去解析和设置属性。PropertyEditor的JavaBeans规范的一个概念,本章也会对此进行说明。Spring 3引入了core.convert包提供了通用的类型转换工具,以及一个高级的format包用来格式化UI字段值。这些新的包可以用作PropertyEditors的替代,我们也将会在之后的章节讨论。